package com.maezia.tdr.domain.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

@ApiModel("试驾数据接口出参对象")
@Data
public class ReportVo implements Serializable {

    @ApiModelProperty("唯一标识")
    private String id;

    @ApiModelProperty("驾驶数据对象")
    private Driving driving;

//    @ApiModelProperty("车机(App、LiteApp)数据对象")
//    private Connectivity connectivity;

    @ApiModelProperty("停车数据对象")
    private ParkingInfo parking;

    @ApiModelProperty("充电信号")
    private Boolean charging;

    @Data
    @ApiModel("驾驶数据对象")
    public static class Driving {
        @ApiModelProperty(value = "平均时速")
        private BigDecimal avgSpeed;

        @ApiModelProperty(value = "最高时速")
        private BigDecimal maxSpeed;

        @ApiModelProperty(value = "加速次数")
        private Integer accelerateTimes;

        @ApiModelProperty(value = "开始时续航里程")
        private BigDecimal startMileage;

        @ApiModelProperty(value = "结束时续航里程")
        private BigDecimal endMileage;

        @ApiModelProperty(value = "行驶里程")
        private BigDecimal traveledMileage;

        @ApiModelProperty(value = "ABS次数")
        private Integer absTimes;

        @ApiModelProperty(value = "ESP次数")
        private Integer espTimes;

        @ApiModelProperty(value = "Travel Assist工作次数")
        private Integer travelAssistWorkTimes;

        @ApiModelProperty(value = "Travel Assist工作时长")
        private BigDecimal travelAssistWorkDuration;

        @ApiModelProperty(value = "Travel Assist工作百分比")
        private BigDecimal travelAssistWorkPercent;

        @ApiModelProperty(value = "转弯打死行驶次数")
        private Integer turningCornerTimes;

        @ApiModelProperty(value = "GPS轨迹 html地址 有过期时间")
        private String routeHtmlURL;

        @ApiModelProperty(value = "GPS图片地址")
        private String routePictureURL;

        @ApiModelProperty(value = "驾驶时间(单位min，scrm传过来的开始和结束时间，就是驾驶时间)")
        private Integer drivingDuration;

        @ApiModelProperty(value = "车辆能耗")
        private Integer carPowerConsumption;
    }

//    @Data
//    @ApiModel("驾驶数据对象")
//    public static class Connectivity {
//        @ApiModelProperty(value = "车控类SDS，触发次数")
//        private Integer carControlSDSTimes;
//
//        @ApiModelProperty(value = "导航类SDS，触发次数")
//        private Integer navigationSDSTimes;
//
//        @ApiModelProperty(value = "非大语言模型 触发次数")
//        private Integer notBigLanguageTimes;
//
//        @ApiModelProperty(value = "大语言模型（泛聊天）SDS触发次数")
//        private Integer bigLanguageTimes;
//
//        @ApiModelProperty(value = "音乐工作时间")
//        private Integer musicWorkingDuration;
//
//        @ApiModelProperty(value = "音乐工作百分比")
//        private Double musicWorkingPercent;
//
//        private ConnectivityApp app;
//
//        @ApiModelProperty(value = "是否打开Avatar商店")
//        private Boolean isAvatarStore;
//    }

//    @Data
//    public static class ConnectivityApp {
//        @ApiModelProperty(value = "APP使用次数")
//        private Integer useTimes;
//
//        @ApiModelProperty(value = "KTV次数")
//        private Integer useKTVTimes;
//
//        @ApiModelProperty(value = "小程序次数")
//        private Integer useAppletTimes;
//
//        @ApiModelProperty(value = "媒体中心次数")
//        private Integer useMediaCenterTimes;
//
//        @ApiModelProperty(value = "Avatar商店次数")
//        private Integer useAvatarStoreTimes;
//    }

    @Data
    public static class ParkingInfo {
        @ApiModelProperty(value = "记忆泊车次数")
        private Integer rememberParkingTimes;

        @ApiModelProperty(value = "记忆泊车时间，单位秒")
        private Integer rememberParkingDuration;

        @ApiModelProperty(value = "记忆泊车距离，单位:厘米")
        private Integer rememberParkingDistance;

        @ApiModelProperty(value = "IPA泊车次数")
        private Integer parkingIPATimes;

        @ApiModelProperty(value = "IPA泊车时间，单位秒")
        private Integer parkingIPADuration;

        @ApiModelProperty(value = "IPA泊车距离，单位:厘米")
        private Integer parkingIPADistance;

//        @ApiModelProperty(value = "RPA泊车次数")
//        private Integer parkingRPATimes;
//
//        @ApiModelProperty(value = "RPA泊车时间，单位秒")
//        private Integer parkingRPADuration;
//
//        @ApiModelProperty(value = "RPA泊车距离，单位:厘米")
//        private Integer parkingRPADistance;
    }
}
